A rowset insert is a database operation that allows for inserting large numbers of rows into a database table. Inserting large numbers of rows into a database table is part of a typical operational Business Intelligence. Depending on the quality of input data, several of the rows that are being inserted may raise constraint violation or expression evaluation errors.
Frequently, the tables to which rows are being inserted may have one or more dependent tables, such as Materialized Views, Referential Integrity Constraints and indices. Typically, the insert operation proceeds asynchronously into all the dependent objects. As such, if an insert of a row into the base table succeeds, an insert of the same row into the dependent objects may be attempted. If the insert into of the dependent object raises an error, continuing the insert operation may result in an inconsistent database.
Typically, when a large number of rows are inserted in the form of a rowset, any error that is raised due to a constraint violation or during expression evaluation may cause the whole insert operation to be aborted. The error row may then be removed and the insert operation tried again. If there are N error rows in a rowset, then N+1 attempts may be needed before all the good rows in the rowset are inserted into the table.